package Strategy;

public class Context {
    /*
        Context 使用了某种具体策略的类.
        通过在运行时， 调用 Context 的构造函数来确定是哪一个对象。 当然
        通过该类调用 某一具体的方法, 需要一 接口类型 + (父)接口类型的"通用"调用方法
     */

    private Strategy strategy;

    public Context(Strategy strategy){
        this.strategy = strategy;
    }

    public int executeStrategy(int num1, int num2){
        return strategy.doOperation(num1, num2 );  // 看似是父类Strategy调用, 实际运用时是子类方法.
    }
}
